package com.kws.payment.dao;

import io.swagger.annotations.ApiModelProperty;

import java.util.List;

/**
 * <b>UnionPayH5Rq</b>
 *
 * @description: UnionPayH5Rq <br>
 * @date: 2024/11/27 17:06 <br>
 * @author: lhm <br>
 * @version: 1.0 <br>
 */
public class UnionPayH5Rq {
    @ApiModelProperty(value = "消息ID")
    private String msgId;

    @ApiModelProperty(value = "报文请求时间")
    private String requestTimestamp;

    @ApiModelProperty(value = "商户订单号")
    private String merOrderId;

    @ApiModelProperty(value = "请求系统预留字段")
    private String srcReserve;

    @ApiModelProperty(value = "商户号")
    private String mid;

    @ApiModelProperty(value = "终端号")
    private String tid;

    @ApiModelProperty(value = "业务类型 H5DEFAULT")
    private String instMid;

    @ApiModelProperty(value = "商品信息 在传分账标记的情况下，若传子商户号，子商户商品金额必传")
    private List<GoodsItem> goods;

    @ApiModelProperty(value = "商户附加数据")
    private String attachedData;

    @ApiModelProperty(value = "账单描述")
    private String orderDesc;

    @ApiModelProperty(value = "商品标记")
    private String goodsTag;

    @ApiModelProperty(value = "订单原始金额")
    private String originalAmount;

    @ApiModelProperty(value = "支付总金额，单位：分")
    private Integer totalAmount;

    @ApiModelProperty(value = "订单过期时间 格式：yyyy-MM-dd HH:mm:ss")
    private String expireTime;

    @ApiModelProperty(value = "担保交易标识")
    private String secureTransaction;

    @ApiModelProperty(value = "支付结果通知地址")
    private String notifyUrl;

    @ApiModelProperty(value = "支付结果回跳商户页面")
    private String returnUrl;

    @ApiModelProperty(value = "系统ID")
    private String systemId;

    @ApiModelProperty(value = "业务应用类型 微信H5支付必填,\n" +
            "用于苹app应用里值为IOS_SDK ；用于安卓app\n" +
            "应用里值为AND_SDK；用于手机网站，\n" +
            "值为IOS_WAP 或AND_WAP")
    private String sceneType;

    @ApiModelProperty(value = "应用名称 微信H5支付必填，\n" +
            "用于苹或安卓app 应用中，传分别 对应在 AppStore和安卓分发市场中的应用名（如：全民付）；用于手机网站，传对应的网站名（如：银联商务官网）")
    private String merAppName;

    @ApiModelProperty(value = "应用标识 微信H5支付必填。\n" +
            "用于苹果或安卓 app 应用中，苹果传 IOS 应用唯一标识(如： com.tencent.wzryIOS )\n" +
            "安卓传包名 (如： com.tencent.tmgp.sgame)\n" +
            "如果是用于手机网站 ，传首页 URL 地址 , (如： https://m.jd.com ) ，支付宝H5支付参数无效")
    private String merAppId;

    @ApiModelProperty(value = "是否需要限制信用卡支付 取值：true或false，默认false")
    private String limitCreditCard;

    @ApiModelProperty(value = "分账标记 暂时只支持微信、支付宝支付和银联云闪付。 若为true，则goods字段和subOrders字段不能同时为空，且secureTransaction字段上送false或不上送。")
    private boolean divisionFlag;

    @ApiModelProperty(value = "平台商户分账金额")
    private Integer platformAmount;

    @ApiModelProperty(value = "子订单信息")
    private List<SubOrderItem> subOrders;

    @ApiModelProperty(value = "实名认证姓名")
    private String name;

    @ApiModelProperty(value = "实名认证手机号")
    private String mobile;

    @ApiModelProperty(value = "实名认证证件类型")
    private String certType;

    @ApiModelProperty(value = "实名认证证件号")
    private String certNo;

    @ApiModelProperty(value = "卡号")
    private String bankCardNo;

    public String getMsgId() {
        return msgId;
    }

    public void setMsgId(String msgId) {
        this.msgId = msgId;
    }

    public String getRequestTimestamp() {
        return requestTimestamp;
    }

    public void setRequestTimestamp(String requestTimestamp) {
        this.requestTimestamp = requestTimestamp;
    }

    public String getMerOrderId() {
        return merOrderId;
    }

    public void setMerOrderId(String merOrderId) {
        this.merOrderId = merOrderId;
    }

    public String getSrcReserve() {
        return srcReserve;
    }

    public void setSrcReserve(String srcReserve) {
        this.srcReserve = srcReserve;
    }

    public String getMid() {
        return mid;
    }

    public void setMid(String mid) {
        this.mid = mid;
    }

    public String getTid() {
        return tid;
    }

    public void setTid(String tid) {
        this.tid = tid;
    }

    public String getInstMid() {
        return instMid;
    }

    public void setInstMid(String instMid) {
        this.instMid = instMid;
    }

    public List<GoodsItem> getGoods() {
        return goods;
    }

    public void setGoods(List<GoodsItem> goods) {
        this.goods = goods;
    }

    public String getAttachedData() {
        return attachedData;
    }

    public void setAttachedData(String attachedData) {
        this.attachedData = attachedData;
    }

    public String getOrderDesc() {
        return orderDesc;
    }

    public void setOrderDesc(String orderDesc) {
        this.orderDesc = orderDesc;
    }

    public String getGoodsTag() {
        return goodsTag;
    }

    public void setGoodsTag(String goodsTag) {
        this.goodsTag = goodsTag;
    }

    public String getOriginalAmount() {
        return originalAmount;
    }

    public void setOriginalAmount(String originalAmount) {
        this.originalAmount = originalAmount;
    }

    public Integer getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(Integer totalAmount) {
        this.totalAmount = totalAmount;
    }

    public String getExpireTime() {
        return expireTime;
    }

    public void setExpireTime(String expireTime) {
        this.expireTime = expireTime;
    }

    public String getSecureTransaction() {
        return secureTransaction;
    }

    public void setSecureTransaction(String secureTransaction) {
        this.secureTransaction = secureTransaction;
    }

    public String getNotifyUrl() {
        return notifyUrl;
    }

    public void setNotifyUrl(String notifyUrl) {
        this.notifyUrl = notifyUrl;
    }

    public String getReturnUrl() {
        return returnUrl;
    }

    public void setReturnUrl(String returnUrl) {
        this.returnUrl = returnUrl;
    }

    public String getSystemId() {
        return systemId;
    }

    public void setSystemId(String systemId) {
        this.systemId = systemId;
    }

    public String getSceneType() {
        return sceneType;
    }

    public void setSceneType(String sceneType) {
        this.sceneType = sceneType;
    }

    public String getMerAppName() {
        return merAppName;
    }

    public void setMerAppName(String merAppName) {
        this.merAppName = merAppName;
    }

    public String getMerAppId() {
        return merAppId;
    }

    public void setMerAppId(String merAppId) {
        this.merAppId = merAppId;
    }

    public String getLimitCreditCard() {
        return limitCreditCard;
    }

    public void setLimitCreditCard(String limitCreditCard) {
        this.limitCreditCard = limitCreditCard;
    }

    public boolean isDivisionFlag() {
        return divisionFlag;
    }

    public void setDivisionFlag(boolean divisionFlag) {
        this.divisionFlag = divisionFlag;
    }

    public Integer getPlatformAmount() {
        return platformAmount;
    }

    public void setPlatformAmount(Integer platformAmount) {
        this.platformAmount = platformAmount;
    }

    public List<SubOrderItem> getSubOrders() {
        return subOrders;
    }

    public void setSubOrders(List<SubOrderItem> subOrders) {
        this.subOrders = subOrders;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String getCertType() {
        return certType;
    }

    public void setCertType(String certType) {
        this.certType = certType;
    }

    public String getCertNo() {
        return certNo;
    }

    public void setCertNo(String certNo) {
        this.certNo = certNo;
    }

    public String getBankCardNo() {
        return bankCardNo;
    }

    public void setBankCardNo(String bankCardNo) {
        this.bankCardNo = bankCardNo;
    }
}
